package com.peng.leetcode.tree;

/**
 * MergeTrees
 * 617. 合并二叉树
 * https://leetcode.cn/problems/merge-two-binary-trees/
 * <p>
 * Created on 2022/12/1
 *
 * @author lupeng
 */
public class MergeTrees {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        if (root1 == null && root2 == null) {
            return null;
        }
        TreeNode root = new TreeNode(0);

        if (root1 != null && root2 != null) {
            root.val = root.val + root1.val + root2.val;
            root.left = mergeTrees(root1.left, root2.left);
            root.right = mergeTrees(root1.right, root2.right);
        } else if (root1 == null) {
            root.val = root.val + root2.val;
            root.left = mergeTrees(null, root2.left);
            root.right = mergeTrees(null, root2.right);
        } else {
            root.val = root.val + root1.val;
            root.left = mergeTrees(root1.left, null);
            root.right = mergeTrees(root1.right, null);
        }

        return root;
    }
}
